package com.yuantu.judiciary.service;

import com.yuantu.judiciary.model.form.AddUserForm;
import com.yuantu.judiciary.model.form.ModifyUserForm;
import com.yuantu.judiciary.model.form.SearchEnterFrom;
import com.yuantu.judiciary.model.form.SearchEnterUserFrom;
import com.yuantu.judiciary.model.vo.*;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 组织管理模块
 *
 * @author syw
 * @since 2023-08-12
 **/
public interface IOrganizationService {

    PageVO<QueryEnterVO> searchEnterPage(SearchEnterFrom form, Pageable pageable);

    PageVO<QueryEnterUserVO> searchEnterUserPage(SearchEnterUserFrom form, Pageable pageable);

    PageVO<QuerySingleVO> searchSinglePage(SearchEnterFrom form, Pageable pageable);

    List<AccountListVO> getUserList(Long accountId);

    Boolean addUser(Long accountId, AddUserForm form);

    Boolean modifyUser(Long accountId, ModifyUserForm form);

    Boolean deleteUser(Long accountId, List<Long> id);

    Boolean uploadSourceEnterInfos(MultipartFile file, Long organizationSourceId);

    Boolean uploadEnterUseTimes(MultipartFile file, String codeInfo);

    void downloadSourceEnterInfos(Long organizationSourceId, MultipartFile file, HttpServletResponse response);

    PageVO<OrgSourceOrganizationVO> querySourceEnterInfos(OrgSourceOrganizationQueryVO query, Pageable pageable);

    Boolean updateSourceEnterInfo(OrgSourceOrganizationVO orgSourceOrganization);

    void downloadSourceEnterTemplate(HttpServletResponse response);
}
